package com.seckill.service;

import com.seckill.dto.Exposer;
import com.seckill.dto.SeckillExecution;
import com.seckill.entity.Seckill;

import java.util.List;

/**
 * @Creation_time 2017/9/7
 * @Theme 秒杀商品类的业务层接口
 * @Autor Xiao Yiyun
 */
public interface SeckillService {

    /*数据库相关操作*/
    //根据Id查询秒杀对象
    public Seckill selectSeckillById(int seckill_id);
    //查询所有秒杀对象--传入偏移量
    public List<Seckill> selectAllSeckill(int offset, int limit);

    /*业务逻辑相关操作*/
    //秒杀开启时输出秒杀接口地址，否则输出系统时间和秒杀时间
    public Exposer exportSeckillUrl(int seckillId);
    //执行秒杀操作,md5验证用户的URL是否合法
    public SeckillExecution executeSeckill(
            int seckillId, String userPhone, String md5);
    //使用存储过程完成秒杀逻辑
    public SeckillExecution executeSeckillProcedure(
            int seckillId, String userPhone, String md5);
}
